package com.family.pedigree.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;

/**
 * <p>
 * 公司简介表
 * </p>
 *
 * @author forever
 * @since 2025-01-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("family_company")
public class FamilyCompany implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 公司名
     */
    @NotBlank(message = "公司名不能为空")
    private String companyName;

    /**
     * 注册号
     */
    private String registrationNumber;

    /**
     * 公司类型（个体...）
     */
    private String companyType;

    /**
     * 法定代表人
     */
    private String legalRepresentative;

    /**
     * 行业
     */
    private String industry;

    /**
     * 成立日期
     */
    private LocalDate establishmentDate;

    /**
     * 经营类型
     */
    private String businessType;

    /**
     * 公司简介
     */
    private String companyProfile;

    /**
     * 许可证（图片url）
     */
    private String licence;

    /**
     * 公司地址
     */
    private String address;

    /**
     * 联系电话
     */
    private String contactNumber;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 总资产
     */
    private BigDecimal totalAssets;

    /**
     * 激活（0-激活 1-未激活）
     */
    private Integer accountStatus;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改人
     */
    private String updateBy;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 公司年资产
     */
    @TableField(exist = false)
    private List<FamilyCompanyAssets> assetsList;
}
